1
ข้ามโค้ดที่พึ่งพาแพลตฟอร์ม
AI013Lesson 8
00:00

ในอดีต ภาษา C++ ไม่มีวิธีมาตรฐานในการสื่อสารกับบริการฮาร์ดแวร์ ทำให้นักพัฒนาต้องเผชิญกับ "ซิโลของแพลตฟอร์ม" ซึ่งโค้ดถูกแบ่งแยกตาม API ที่เฉพาะเจาะจงกับระบบปฏิบัติการ เช่น Win32 หรือ POSIX หน้านี้แสดงถึงการเปลี่ยนผ่านสู่ยุคสมัยใหม่ ที่ไลบรารีมาตรฐานของ C++ ทำหน้าที่เป็นชั้นการสร้างความเข้าใจที่ใช้ได้ทั่วไป

1. จุดจบของโค้ดแบบ #ifdef ที่ยุ่งเหยิง

ก่อนที่จะมีมาตรฐาน การดำเนินงานง่ายๆ เช่น การสร้างเธรดหรือเดินทางผ่านโฟลเดอร์ต้องใช้เมตาคอมไพเลอร์เพื่อจัดการกับหัวไฟล์ระบบที่แตกต่างกัน (เช่น <windows.h> เทียบกับ <pthread.h>) ซึ่งนำไปสู่โค้ดที่หนาแน่นและยากต่อการบำรุงรักษา

2. การเปลี่ยนแปลงแนวคิดในเวอร์ชัน C++11

มาตรฐานเริ่มกลับมาควบคุมทรัพยากรของระบบ โดยเฉพาะ C++11 เพิ่มฟีเจอร์ระดับสูงเกี่ยวกับการทำงานพร้อมกัน รวมถึง std::thread, std::mutex และ std::futureซึ่งทำให้ความสัมพันธ์ระหว่างภาษาและหน่วยประมวลผล (CPU) กลายเป็นมาตรฐาน

แบบดั้งเดิม (แบ่งแยก)#ifdef _WIN32CreateThread(...);#elsepthread_create(...);#endifสมัยใหม่ (มาตรฐานแล้ว)std::thread t(task);

3. การแยกตรรกะของผู้ผลิตออก

ด้วยการเคลื่อนออกจากโค้ดที่พึ่งพาแพลตฟอร์ม ไลบรารีมาตรฐานจะให้คำมั่นสัญญาว่า "เขียนครั้งเดียว คอมไพล์ได้ทุกที่" ภาระงานดูแลแพลตฟอร์มจะเปลี่ยนจากนักพัฒนาไปยังผู้ผลิตเครื่องคอมไพล์แทน

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>